Control cards, such as smart cards, often include some form of readable storage means such as a magnetic strip, an optical code (e.g. a bar code) or an on-board memory chip, for storing data (e.g. a personal identification number) associated with the card. Such control cards can be generically referred to as memory cards. However, control cards including a storage means in the form of an on-board memory chip are generally referred to as ‘smart cards’. The data stored in the storage means is generally read by some form of terminal device, which includes a magnetic read head, for example.
Some smart cards include a microprocessor integrally formed within the smart card. These smart cards are generally referred to as microprocessor or central processing unit (CPU) cards.
One existing CPU card with a user interface printed on at least one surface of the card includes a data structure describing the interface, where the data structure is stored in a memory integrally formed within the CPU card. This CPU card has electrical contacts, which are used to communicate with a reader device. The reader device includes a transparent touch screen positioned above the card so that the printed interface is visible underneath the transparent touch screen. The reader device is configured to receive the position of a touch on the transparent screen and to use data stored within the card to determine whether a valid user interface element has been pressed. The reader device can be configured to then send a data string associated with the selected user interface element to a remote application.
Several smartcard systems exist which utilise CPU cards. One of these existing smartcard systems includes a self-contained card including a keypad, display, memory and means to enter and verify a personal identification number (PIN). Another of these existing smartcard systems includes a self-contained smartcard. The self-contained smartcard includes a power source, keypad, display, memory and means to enter identification information. Still another of these existing smartcard systems uses a self-contained smartcard with a keypad and display, which are used to enter information, where the keypad is multifunctional and programmable.
In addition, one of the existing smartcard systems discussed above uses a CPU card for transaction processing, where the CPU card has a data entering means for entering at least a portion of the data necessary to execute the transaction. While another of the smartcard systems discussed above utilises an integrated circuit card having a keypad for entering data by the user, and a light-sensitive power source. Finally, one of the existing smartcard systems discussed above is configured to allow a personal identification number to be entered into a card when the card is inserted into a reader, where a touch sensitive keypad is provided by the card but does not have any indicia printed on the card. Instead indicia are provided by the reader, which includes an overlay to be positioned on the card surface. The overlay is capable of allowing pressure to be transferred onto the surface of the card.
Most of the smart card systems discussed above are configured to store input data sequences in an input buffer and process the buffered data in some way. Input buffers allow data to be processed in larger, possibly variable length blocks and are typically allocated by computer software, which is aware in advance of the desired properties of the buffer. Such properties include the size and shape (e.g. linear or circular) of the buffer, the set of allowable inputs (e.g. excluding a control key ‘<CTRL>’ from being buffered) and any inputs used for specific purposes (e.g. a user interface element configured with an ‘OK’ function).
The input buffers of the smart card systems described above generally require different properties depending on how the data in a particular buffer is to be processed. In one of the smartcard systems discussed above, the parameters for buffered data entry are included in application software code for the system. The input buffer of this system has a fixed length and user interface elements with special functions such as “OK”, “Cancel” etc., are defined as having specific identifiers. Further, the user interface elements having the same identifier must be used with a particular buffer. Thus, the structure of the buffer is essentially very rigid, and provides little opportunity for the issuer of a smart card, to be used on the smart card system, to customise the functionality of an input buffer.
In addition, most of the smart card systems discussed above, control data input using a currently active software process, which constrains the parameters of a buffer (e.g. length of the buffer, how character functions are configured) to values defined when the code of the currently active software process is compiled. As such, these smart card systems must be continually reprogrammed each time a function of a card associated with the system and/or the system needs to be changed. Thus, conventional smart card systems are limited in their application.